<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // new  修饰符
        //    创建了一个对象
        //    返回了这个对象
        //    把this指向了这个对象


        //  任何一个函数都有机会成为构造函数   new  

        //  为了普通函数做区分，构造函数一般首字母大写   


        //  实例：构造函数创建出来的对象称为实例



        // function fn() {
        //     console.log(1);
        //     console.log(this);
        // }


        // const res = fn();
        // console.log(res);  // undefined


        // const res2 = new fn();
        // console.log(res2);



        // const arr = [];
        // console.log(arr);






        function Dog(name, age) {
            // const obj = {} ;
            // this -> obj
            // obj.name = name ;
            // obj.age = age ;
            this.name = name;
            this.age = age;
            this.say = function () {
                console.log('汪');
            }
            // return obj ;
        }


        const d = new Dog('哈士奇', 3);
        d.say();


        const d2 = new Dog('柯基', 2);

        console.log(d instanceof Dog);   // true

        console.log(d.say == d2.say);   // false   依然没有解决方法共享的问题



        // const d2 = Dog('哈士奇', 4);
        // d2.say();





    </script>

</body>

</html>